from api.login import LoginAPI
# 创建测试类
class TestLoginAPI:
    uid = None
    # 前置操作
    def setup_method(self):
        # 将第一步导入进来的接口类（LoginAPI）实例化为一个对象
        self.login_api = LoginAPI()
        # 将验证码接口返回的uuid提取出来
        resp = self.login_api.get_verify_code() #通过上一步实例化的对象，
        # 调用验证码方法，拿到验证码接口的整个响应结果，并且保存到一个变量resp中
        TestLoginAPI.uid = resp.json().get("uuid")
    # 后置操作
    def teardown_method(self):
        pass
    # 编写测试用例方法
    # 登录成功
    def test01_success(self):
        login_data = {"username":"admin","password":"HM_2023_test",
                      "code":"2","uuid":TestLoginAPI.uid}
        resp = self.login_api.login(test_data=login_data)
        # 断言状态码是否为200
        assert 200 == resp.status_code
        # 断言响应数据中是否包含”成功“
        assert "成功" in resp.text
        # 断言响应数据中code值是否为200
        assert 200 == resp.json().get("code")
    # 登录失败（用户名为空）
    def test02_without_username(self):
        login_data = {"username": "", "password": "HM_2023_test",
                      "code": "2", "uuid": TestLoginAPI.uid}
        resp = self.login_api.login(test_data=login_data)
        # 断言状态码是否为200
        assert 200 == resp.status_code
        # 断言响应数据中是否包含”不存在“
        assert "不存在" in resp.text
        # 断言响应数据中code值是否为500
        assert 500 == resp.json().get("code")
    # 登录失败（未注册用户名）
    def test03_username_not_exist(self):
        login_data = {"username": "admin01", "password": "HM_2023_test",
                      "code": "2", "uuid": TestLoginAPI.uid}
        resp = self.login_api.login(test_data=login_data)
        # 断言状态码是否为200
        assert 200 == resp.status_code
        # 断言响应数据中是否包含”不存在“
        assert "不存在" in resp.text
        # 断言响应数据中code值是否为500
        assert 500 == resp.json().get("code")